/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package nvOrganism;

import org.nViron.nvCommon.nvStateMgr;
import org.nViron.nvRender.nvRenderer;

/**
 *
 * @author Roland
 */
public abstract class nvOrganism {

    private long id;
    private nvOrganismMgr organismMgr;

    protected nvStateMgr stateMgr = new nvStateMgr();

    public nvOrganism(nvOrganismMgr organismMgr) {
        this.id = organismMgr.getNextId();
        this.organismMgr = organismMgr;
    }

    public nvOrganismMgr getOrganismMgr() {
        return organismMgr;
    }

    public long getId() {
        return id;
    }

    public nvStateMgr getStateMgr() {
        return stateMgr;
    }

    abstract public void update();
    abstract public void render(nvRenderer renderer);
}
